package com.nts.visionworks.business.contents.domain;

import java.util.HashMap;
import java.util.Map;

import com.nts.visionworks.core.taglibrary.enumerationtag.Enumeration;
import com.nts.visionworks.core.taglibrary.enumerationtag.annotation.EnumerationTag;
import com.nts.visionworks.core.taglibrary.enumerationtag.annotation.EnumerationTagAttribute;

/**
 * 컨텐츠의 상태를 나타내는 열거형으로 컨텐츠 관리자에 의해 결정된다.
 * @author Devcken
 */
@EnumerationTag(name="packageStatus")
public enum ContentsStatus implements Enumeration
{
	/**
	 * 컨텐츠의 상태를 알 수 없는 경우를 뜻한다.
	 */
	Unknown(0),
	
	/**
	 * 컨텐츠를 사용할 수 있는 상태를 뜻한다.
	 */
	@EnumerationTagAttribute(name="package.status.001")
	Publish(1),
	
	/**
	 * 컨텐츠를 구성 중으로 사용 준비 상태를 뜻한다.
	 */
	@EnumerationTagAttribute(name="package.status.002")
	StandBy(2),
	
	/**
	 * 컨텐츠가 폐기된 상태로 더 이상 사용 불가능한 상태를 뜻한다.
	 */
	@EnumerationTagAttribute(name="package.status.003")
	Discard(3);
	
	public final int value;
	
	private static final Map<Integer, ContentsStatus> _map = new HashMap<Integer, ContentsStatus>();
	
	static
	{
		for (ContentsStatus item : ContentsStatus.values())
		{
			_map.put(item.value, item);
		}
	}
	
	private ContentsStatus(int value)
	{
		this.value = value;
	}

	public int value()
	{
		return this.value;
	}
}